7fa36c3db43b6d1a07990dd97f099e1a7a644908,cdap-hbase-compat-1.0-cdh5.5.0/src/main/java/co/cask/cdap/data2/transaction/messaging/coprocessor/hbase10cdh550/MessageTableRegionObserver.java,MessageTableRegionObserver,preCompactScannerOpen,#ObserverContext#Store#List#ScanType#number#InternalScanner#CompactionRequest#,136
Before Change
LOG.info("preCompact, filter using MessageDataFilter");
TransactionVisibilityState txVisibilityState = txStateCache.getLatestState();
if (pruneEnable == null) {
CConfiguration cConf = topicMetadataCache.getCConfiguration();
if (cConf != null) {
pruneEnable = cConf.getBoolean(TxConstants.TransactionPruning.PRUNE_ENABLE,
TxConstants.TransactionPruning.DEFAULT_PRUNE_ENABLE);
if (Boolean.TRUE.equals(pruneEnable)) {
String pruneTable = cConf.get(TxConstants.TransactionPruning.PRUNE_STATE_TABLE,
TxConstants.TransactionPruning.DEFAULT_PRUNE_STATE_TABLE);
long pruneFlushInterval = TimeUnit.SECONDS.toMillis(
cConf.getLong(TxConstants.TransactionPruning.PRUNE_FLUSH_INTERVAL,
TxConstants.TransactionPruning.DEFAULT_PRUNE_FLUSH_INTERVAL));
compactionState = new CompactionState(c.getEnvironment(), TableName.valueOf(pruneTable), pruneFlushInterval);
LOG.debug("Automatic invalid list pruning is enabled. Compaction state will be recorded in table " +
pruneTable);
}
}
}
if (Boolean.TRUE.equals(pruneEnable)) {
// Record tx state before the compaction
compactionState.record(request, txVisibilityState);
}
After Change
LOG.info("preCompact, filter using MessageDataFilter");
TransactionVisibilityState txVisibilityState = txStateCache.getLatestState();
reloadPruneState(c.getEnvironment());
if (compactionState != null) {
// Record tx state before the compaction
compactionState.record(request, txVisibilityState);